from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):
    名称 = '乖离：虚无'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['次元：虚影', '次元：跃迁', '次元：离子束', '次元：坠落', '次元：万花镜', '次元：粒子风暴', '次元：时空磁场', '次元：粒子波',
            '次元：思维聚爆', '次元：奇点', '禁断之盛宴', '未明·次元崩坏']  # 次元：系技能

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1. + 0.015 * self.等级, 5)


class 技能1(主动技能):
    名称 = "次元：坠落"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [30, 280]
    无色消耗 = 0
    data0 = [0, 673, 742, 809, 878, 945, 1014, 1082, 1151, 1219, 1287, 1355, 1423, 1491, 1560, 1627, 1696, 1766, 1834, 1903, 1971, 2039, 2107, 2175, 2243, 2312, 2379, 2448, 2516, 2585, 2653, 2721, 2788, 2857, 2925, 2995,
             3064, 3131, 3200, 3268, 3337, 3405, 3472, 3540, 3609, 3677, 3746, 3813, 3882, 3950, 4019, 4086, 4154, 4224, 4292, 4361, 4429, 4498, 4565, 4634, 4702, 4771, 4838, 4906, 4974, 5043, 5111, 5180, 5247, 5316, 5384]
    hit0 = 1
    data1 = [0, 2286, 2517, 2749, 2981, 3214, 3446, 3677, 3909, 4141, 4373, 4605, 4836, 5069, 5301, 5533, 5764, 5996, 6228, 6460, 6693, 6924, 7158, 7389, 7621, 7852, 8084, 8318, 8549, 8781, 9012, 9245, 9476, 9708, 9939, 10172, 10405, 10636,
             10868, 11099, 11332, 11563, 11796, 12028, 12259, 12492, 12723, 12955, 13186, 13418, 13652, 13883, 14115, 14346, 14579, 14810, 15042, 15275, 15508, 15740, 15971, 16203, 16434, 16668, 16899, 17131, 17363, 17595, 17827, 18058, 18290]
    hit1 = 1
    data2 = [0, 2881, 3172, 3465, 3758, 4050, 4343, 4635, 4928, 5219, 5511, 5804, 6096, 6388, 6681, 6975, 7266, 7558, 7850, 8142, 8435, 8728, 9020, 9311, 9603, 9896, 10189, 10482, 10774, 11067, 11358, 11650, 11942, 12234, 12528, 12820, 13113,
             13403, 13697, 13989, 14282, 14574, 14866, 15159, 15450, 15742, 16034, 16327, 16621, 16913, 17205, 17496, 17789, 18082, 18374, 18666, 18958, 19251, 19542, 19834, 20128, 20421, 20713, 21005, 21297, 21588, 21882, 22174, 22466, 22758, 23052]
    hit2 = 0
    TP成长 = 0.1
    TP上限 = 7

    形态 = ['普通', '箱子']

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '普通':
            self.hit2 = 0
        if 形态 == '箱子':
            self.hit2 = 1


class 技能2(被动技能):
    名称 = '次元扭曲装置'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return round(1.05 + 0.01 * self.等级, 5)
        else:
            return round(1.15 + 0.02 * (self.等级-10), 5)


class 技能3(主动技能):
    名称 = "次元：跃迁"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CDdata = [0, 15, 14.9, 14.9, 14.8, 14.7, 14.7, 14.6, 14.5, 14.5, 14.4, 14.3, 14.3, 14.2, 14.2, 14.1, 14, 14, 13.9, 13.8, 13.8, 13.7, 13.6, 13.6, 13.5, 13.4, 13.4, 13.3, 13.2, 13.2, 13.1, 13, 13, 12.9, 12.8,
              12.8, 12.7, 12.7, 12.6, 12.5, 12.5, 12.4, 12.3, 12.3, 12.2, 12.1, 12.1, 12, 11.9, 11.9, 11.8, 11.7, 11.7, 11.6, 11.5, 11.5, 11.4, 11.3, 11.3, 11.2, 11.2, 11.1, 11, 11, 10.9, 10.8, 10.8, 10.7, 10.6, 10.6, 10.5]
    MP = [20, 70]
    无色消耗 = 0
    data0 = [0, 8137, 9435, 10731, 12028, 13326, 14623, 15921, 17217, 18514, 19811, 21108, 22406, 23703, 25001, 26297, 27593, 28892, 30189, 31486, 32783, 34081, 35379, 36677, 37973, 39270, 40567, 41865, 43162, 44459, 45756, 47053, 48350, 49648, 50945,
             52242, 53539, 54836, 56134, 57430, 58729, 60027, 61323, 62621, 63917, 65215, 66512, 67809, 69106, 70404, 71700, 72998, 74295, 75592, 76890, 78186, 79484, 80780, 82078, 83375, 84672, 85971, 87268, 88565, 89862, 91159, 92456, 93754, 95050, 96348, 97646]
    hit0 = 1

    def 等效CD(self, **argv):
        self.CD = self.CDdata[self.等级]
        if self.等级 <= 30:
            self.CD = self.CDdata[self.等级]
        else:
            self.CD = 10.5
        return super().等效CD(**argv)


class 技能4(主动技能):
    名称 = "次元：虚影"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [20, 210]
    无色消耗 = 0
    data0 = [0, 4285, 4721, 5155, 5590, 6027, 6460, 6895, 7330, 7764, 8200, 8634, 9070, 9504, 9938, 10374, 10810, 11243, 11678, 12112, 12549, 12983, 13417, 13853, 14288, 14722, 15158, 15592, 16027, 16464, 16897, 17332, 17766, 18201, 18637, 19071,
             19507, 19940, 20375, 20811, 21246, 21680, 22114, 22549, 22986, 23419, 23854, 24289, 24725, 25159, 25594, 26029, 26463, 26899, 27334, 27768, 28203, 28638, 29073, 29508, 29943, 30377, 30812, 31247, 31683, 32117, 32551, 32988, 33422, 33856, 34291]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能5(主动技能):
    名称 = "乖离：禁忌之奈雅丽"
    所在等级 = 20
    等级上限 = 11
    学习间隔 = 2
    等级精通 = 1
    CD = 5
    MP = [30, 90]
    无色消耗 = 0
    data0 = [0, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734]
    hit0 = 1
    data1 = [0, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661]
    hit1 = 0
    TP成长 = 0.1
    TP上限 = 5

    关联技能 = ["所有"]

    def 独立攻击力倍率进图(self, 武器类型):
        return 1.10


class 技能6(主动技能):
    名称 = "次元：离子束"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [35, 350]
    无色消耗 = 0
    data0 = [0, 959, 1055, 1154, 1250, 1348, 1444, 1542, 1640, 1737, 1834, 1932, 2027, 2126, 2223, 2321, 2417, 2516, 2613, 2711, 2806, 2903, 3002, 3099, 3196, 3293, 3392, 3489, 3586, 3682, 3779, 3877, 3975, 4071, 4169,
             4267, 4365, 4460, 4558, 4655, 4754, 4850, 4948, 5045, 5143, 5239, 5337, 5433, 5531, 5629, 5727, 5823, 5921, 6018, 6116, 6212, 6310, 6407, 6504, 6602, 6700, 6796, 6893, 6990, 7089, 7185, 7283, 7380, 7479, 7575, 7673]
    hit0 = 6
    data1 = [0, 7450, 8207, 8962, 9718, 10474, 11229, 11987, 12742, 13497, 14253, 15009, 15764, 16521, 17278, 18032, 18789, 19544, 20299, 21057, 21813, 22568, 23323, 24080, 24835, 25592, 26348, 27103, 27859, 28615, 29371, 30128, 30883, 31638, 32394, 33151,
             33906, 34662, 35419, 36173, 36930, 37686, 38442, 39198, 39954, 40709, 41465, 42222, 42976, 43733, 44489, 45244, 46001, 46757, 47512, 48267, 49024, 49781, 50536, 51292, 52047, 52803, 53561, 54315, 55072, 55827, 56583, 57338, 58096, 58852, 59606]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["强化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '普通':
            self.hit0 = 6
            self.hit1 = 0
        if 形态 == '强化':
            self.hit0 = 0
            self.hit1 = 1


class 技能7(主动技能):
    名称 = "次元：万花镜"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [180, 1512]
    无色消耗 = 0
    data0 = [0, 2663, 2934, 3204, 3475, 3745, 4016, 4285, 4555, 4827, 5096, 5367, 5637, 5906, 6177, 6447, 6718, 6988, 7259, 7529, 7798, 8070, 8340, 8610, 8880, 9151, 9420, 9691, 9962, 10231, 10502, 10772, 11041, 11313, 11583, 11854, 12123,
             12394, 12665, 12935, 13205, 13475, 13745, 14015, 14287, 14556, 14827, 15097, 15368, 15637, 15908, 16179, 16448, 16719, 16989, 17258, 17530, 17800, 18070, 18340, 18611, 18880, 19151, 19422, 19692, 19962, 20232, 20504, 20773, 21043, 21314]
    hit0 = 4
    data1 = [0, 2138, 2355, 2573, 2789, 3007, 3223, 3439, 3658, 3874, 4091, 4308, 4525, 4742, 4960, 5176, 5393, 5611, 5828, 6044, 6262, 6478, 6694, 6913, 7129, 7346, 7563, 7781, 7997, 8215, 8431, 8647, 8866, 9082, 9299, 9516, 9734, 9950,
             10168, 10384, 10601, 10819, 11036, 11252, 11469, 11686, 11903, 12120, 12337, 12554, 12770, 12989, 13205, 13421, 13639, 13855, 14073, 14290, 14507, 14723, 14942, 15158, 15374, 15592, 15808, 16026, 16243, 16460, 16676, 16894, 17111]
    hit1 = 4
    TP成长 = 0.1
    TP上限 = 7

    形态 = ["强化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '普通':
            self.hit0 = 4
            self.hit1 = 0
        if 形态 == '强化':
            self.hit0 = 0
            self.hit1 = 4


class 技能8(主动技能):
    名称 = "乖离：魅魔之舞"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [185, 1526]
    无色消耗 = 0
    data0 = [0, 304, 336, 368, 399, 430, 459, 491, 523, 553, 585, 614, 647, 678, 708, 741, 770, 801, 833, 864, 896, 925, 956, 989, 1019, 1051, 1080, 1112, 1144, 1174, 1206, 1237, 1267, 1299, 1330, 1360, 1392,
             1422, 1454, 1485, 1515, 1547, 1578, 1609, 1640, 1670, 1702, 1733, 1764, 1793, 1826, 1857, 1888, 1920, 1950, 1981, 2012, 2044, 2075, 2104, 2136, 2168, 2198, 2230, 2259, 2292, 2323, 2353, 2386, 2415, 2446]
    hit0 = 15
    data1 = [0, 5204, 5731, 6260, 6787, 7316, 7843, 8373, 8899, 9429, 9955, 10485, 11011, 11540, 12067, 12596, 13123, 13652, 14179, 14708, 15235, 15764, 16290, 16820, 17346, 17876, 18402, 18932, 19458, 19988, 20514, 21044, 21570, 22100, 22626, 23156,
             23682, 24212, 24739, 25267, 25795, 26323, 26851, 27379, 27907, 28435, 28963, 29491, 30019, 30547, 31075, 31603, 32130, 32659, 33186, 33715, 34242, 34772, 35298, 35828, 36354, 36884, 37410, 37940, 38467, 38996, 39523, 40052, 40579, 41107, 41635]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = "次元：粒子风暴"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 16
    MP = [185, 1526]
    无色消耗 = 1
    data0 = [0, 4424, 4871, 5320, 5768, 6217, 6668, 7115, 7564, 8012, 8461, 8911, 9358, 9808, 10257, 10705, 11153, 11602, 12051, 12500, 12949, 13397, 13845, 14295, 14744, 15192, 15641, 16090, 16538, 16988, 17436, 17884, 18333, 18782, 19232, 19681,
             20128, 20577, 21025, 21474, 21925, 22372, 22821, 23269, 23718, 24167, 24616, 25065, 25513, 25962, 26411, 26858, 27309, 27758, 28206, 28655, 29102, 29552, 30002, 30450, 30899, 31346, 31795, 32245, 32694, 33143, 33591, 34039, 34488, 34937, 35386]
    hit0 = 3
    data1 = [0, 16939, 18656, 20374, 22092, 23811, 25531, 27249, 28967, 30684, 32403, 34122, 35841, 37558, 39277, 40996, 42714, 44434, 46150, 47869, 49587, 51306, 53025, 54743, 56461, 58179, 59898, 61617, 63335, 65053, 66772, 68490, 70207, 71926, 73645, 75363, 77082,
             78799, 80519, 82238, 83956, 85674, 87391, 89111, 90829, 92548, 94267, 95984, 97701, 99421, 101140, 102858, 104576, 106294, 108014, 109732, 111451, 113167, 114886, 116606, 118324, 120043, 121760, 123479, 125196, 126916, 128634, 130352, 132070, 133789, 135509]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["强化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if "次元：粒子风暴" in char.护石栏:
            形态 == '强化'
        if 形态 == '普通':
            self.hit0 = 3
            self.hit1 = 0
        if 形态 == '强化':
            self.hit0 = 0
            self.hit1 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.31
        self.hit0 = 0
        self.hit1 = 1


class 技能10(主动技能):
    名称 = "次元：时空磁场"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 14
    MP = [160, 1344]
    无色消耗 = 1
    data0 = [0, 5698, 6275, 6853, 7431, 8010, 8587, 9166, 9744, 10320, 10899, 11476, 12055, 12633, 13211, 13788, 14368, 14945, 15523, 16102, 16680, 17257, 17837, 18414, 18992, 19570, 20149, 20725, 21305, 21881, 22460, 23038, 23616, 24194, 24773, 25350,
             25927, 26507, 27085, 27662, 28240, 28819, 29396, 29974, 30553, 31130, 31707, 32287, 32864, 33442, 34020, 34599, 35176, 35755, 36333, 36911, 37489, 38067, 38645, 39224, 39801, 40380, 40958, 41536, 42112, 42692, 43269, 43846, 44426, 45003, 45581]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 5


class 技能11(主动技能):
    名称 = "乖离：异界蜂群"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [350, 3080]
    无色消耗 = 1
    data0 = [0, 1054, 1161, 1269, 1376, 1483, 1590, 1697, 1804, 1912, 2019, 2126, 2233, 2340, 2446, 2554, 2661, 2768, 2875, 2981, 3088, 3196, 3303, 3410, 3517, 3624, 3732, 3839, 3946, 4053, 4159, 4266, 4374, 4481, 4588,
             4695, 4802, 4910, 5017, 5124, 5231, 5338, 5445, 5553, 5660, 5767, 5872, 5979, 6086, 6194, 6301, 6408, 6515, 6622, 6729, 6837, 6944, 7051, 7158, 7265, 7373, 7479, 7586, 7693, 7800, 7907, 8015, 8122, 8229, 8336, 8443]
    hit0 = 20
    data1 = [0, 223, 246, 270, 293, 315, 337, 361, 383, 407, 429, 451, 475, 497, 519, 543, 566, 589, 611, 633, 656, 680, 703, 725, 747, 771, 793, 817, 839, 861, 885, 907, 930, 953, 977, 999, 1021, 1044,
             1066, 1090, 1113, 1135, 1158, 1181, 1203, 1227, 1249, 1272, 1295, 1317, 1340, 1362, 1385, 1409, 1431, 1454, 1476, 1501, 1523, 1545, 1568, 1590, 1614, 1637, 1659, 1682, 1705, 1728, 1750, 1772, 1796]
    hit1 = 20
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 23
        self.倍率 *= 1.14
        self.CDR *= 0.9


class 技能12(主动技能):
    名称 = "次元：粒子波"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 40
    MP = [350, 3080]
    无色消耗 = 2
    data0 = [0, 3681, 4055, 4429, 4802, 5175, 5549, 5923, 6296, 6670, 7043, 7417, 7790, 8164, 8537, 8911, 9284, 9658, 10032, 10405, 10778, 11152, 11526, 11899, 12272, 12646, 13020, 13394, 13766, 14140, 14514, 14888, 15260, 15634, 16008, 16382,
             16755, 17128, 17502, 17876, 18249, 18622, 18996, 19370, 19743, 20117, 20490, 20864, 21237, 21611, 21985, 22358, 22731, 23105, 23479, 23852, 24225, 24599, 24973, 25347, 25719, 26093, 26467, 26841, 27213, 27587, 27961, 28335, 28708, 29081, 29455]
    hit0 = 10
    data1 = [0, 3233, 3561, 3889, 4217, 4545, 4874, 5201, 5529, 5858, 6186, 6513, 6842, 7170, 7498, 7826, 8154, 8482, 8811, 9138, 9466, 9794, 10123, 10450, 10778, 11107, 11435, 11762, 12091, 12419, 12746, 13075, 13403, 13731, 14059, 14387, 14715,
             15043, 15371, 15699, 16027, 16356, 16683, 17011, 17340, 17668, 17995, 18324, 18652, 18980, 19308, 19636, 19964, 20291, 20620, 20948, 21276, 21604, 21932, 22260, 22589, 22916, 23244, 23573, 23901, 24228, 24557, 24885, 25213, 25541, 25869]
    hit1 = 0
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["强化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '普通':
            self.hit0 = 10
            self.hit1 = 0
        if 形态 == '强化':
            self.hit0 = 0
            self.hit1 = 10

    def 装备护石(self, char):
        self.倍率 *= 1.32
        self.CDR *= 0.9


class 技能13(被动技能):
    名称 = '虚空之力'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = "乖离：扭曲之恐惧"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1200, 10080]
    无色消耗 = 5
    data0 = [0, 9553, 11767, 13982, 16196, 18411, 20627, 22842, 25057, 27273, 29487, 31703, 33918, 36132, 38347, 40562, 42776, 44994, 47209, 49423, 51638, 53853, 56067, 58283, 60497, 62713,
             64929, 67143, 69359, 71574, 73788, 76003, 78218, 80432, 82649, 84864, 87079, 89294, 91509, 93723, 95940, 98155, 100369, 102584, 104798, 107015, 109230, 111445, 113660, 115875, 118089]
    hit0 = 1
    data1 = [0, 2075, 2558, 3039, 3520, 4003, 4484, 4965, 5446, 5929, 6410, 6891, 7373, 7854, 8335, 8818, 9299, 9780, 10262, 10744, 11225, 11706, 12189, 12670, 13151, 13633,
             14114, 14595, 15078, 15559, 16040, 16521, 17003, 17484, 17965, 18449, 18930, 19411, 19892, 20374, 20855, 21337, 21819, 22300, 22781, 23263, 23744, 24225, 24709, 25190, 25671]
    hit1 = 22
    data2 = [0, 38208, 47069, 55929, 64789, 73650, 82510, 91372, 100230, 109090, 117952, 126810, 135672, 144531, 153393, 162252, 171112, 179974, 188832, 197694, 206554, 215412, 224274, 233135, 241995, 250855,
             259715, 268576, 277434, 286296, 295156, 304017, 312876, 321738, 330597, 339457, 348317, 357178, 366039, 374898, 383758, 392620, 401478, 410340, 419199, 428060, 436920, 445780, 454641, 463500, 472361]
    hit2 = 1

    def 等效百分比(self, **argv):
        if self.等级 >= 3:
            self.power2 = 1.1
        return super().等效百分比(**argv)


class 技能15(主动技能):
    名称 = "次元：思维聚爆"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1120]
    无色消耗 = 1
    data0 = [0, 830, 914, 996, 1081, 1164, 1250, 1334, 1418, 1501, 1586, 1670, 1753, 1840, 1923, 2007, 2091, 2175, 2260, 2342, 2425, 2512, 2595, 2678, 2764,
             2847, 2932, 3015, 3099, 3185, 3268, 3353, 3437, 3520, 3604, 3687, 3772, 3857, 3940, 4025, 4109, 4193, 4276, 4361, 4446, 4529, 4615, 4698, 4782, 4866, 4950]
    hit0 = 1
    data1 = [0, 26794, 29511, 32231, 34948, 37664, 40383, 43101, 45820, 48537, 51257, 53974, 56691, 59411, 62130, 64848, 67564, 70282, 73001, 75720, 78437, 81156, 83873, 86594, 89311, 92029, 94745,
             97463, 100183, 102900, 105619, 108336, 111057, 113774, 116492, 119208, 121926, 124646, 127365, 130082, 132799, 135519, 138237, 140955, 143673, 146390, 149108, 151828, 154545, 157262, 159982]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["打满", "瞬爆"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '打满':
            self.hit0 = 12
            self.hit1 = 1
        if 形态 == '瞬爆':
            self.hit0 = 1
            self.hit1 = 1

    def 装备护石(self, char):
        self.power1 = 1.25
        self.CDR *= 0.9
        self.倍率 *= 1.08


class 技能16(主动技能):
    名称 = "乖离：禁锢"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [900, 1820]
    无色消耗 = 3
    data0 = [0, 53732, 59183, 64635, 70087, 75538, 80989, 86441, 91890, 97343, 102793, 108245, 113695, 119147, 124599, 130050, 135502, 140952, 146403, 151854, 157307, 162757, 168209, 173659, 179112, 184560,
             190013, 195464, 200915, 206366, 211819, 217270, 222721, 228173, 233622, 239075, 244525, 249977, 255428, 260879, 266330, 271782, 277232, 282684, 288135, 293586, 299039, 304489, 309941, 315391, 320844]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.15


class 技能17(主动技能):
    名称 = "次元：奇点"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 39742, 43775, 47808, 51840, 55872, 59904, 63936, 67967, 71999, 76032, 80064, 84097, 88128, 92159, 96192, 100224, 104257, 108288, 112320, 116352, 120384, 124417, 128449, 132479, 136512,
             140544, 144576, 148608, 152641, 156672, 160704, 164735, 168769, 172800, 176834, 180865, 184896, 188929, 192961, 196994, 201025, 205058, 209089, 213121, 217152, 221186, 225217, 229249, 233281, 237314]
    hit0 = 1
    data1 = [0, 45931, 50592, 55252, 59910, 64570, 69230, 73888, 78550, 83210, 87869, 92529, 97188, 101847, 106509, 111169, 115827, 120487, 125147, 129806, 134466, 139127, 143786, 148446, 153106, 157764,
             162425, 167086, 171744, 176404, 181064, 185724, 190384, 195043, 199704, 204363, 209024, 213683, 218342, 223002, 227663, 232323, 236982, 241642, 246301, 250960, 255620, 260279, 264941, 269600, 274260]
    hit1 = 1
    data2 = [0, 7742, 8527, 9312, 10098, 10882, 11668, 12454, 13240, 14024, 14811, 15596, 16380, 17167, 17952, 18736, 19523, 20308, 21094, 21880, 22665, 23449, 24235, 25021, 25806,
             26593, 27377, 28161, 28948, 29733, 30519, 31305, 32089, 32875, 33660, 34446, 35231, 36018, 36802, 37587, 38374, 39159, 39944, 40729, 41514, 42300, 43086, 43872, 44657, 45441, 46227]
    hit2 = 0
    data3 = [0, 11612, 12791, 13970, 15146, 16325, 17503, 18682, 19860, 21037, 22215, 23394, 24572, 25751, 26927, 28107, 29284, 30463, 31640, 32819, 33997, 35176, 36353, 37533, 38709,
             39888, 41066, 42245, 43422, 44600, 45778, 46958, 48135, 49313, 50490, 51669, 52848, 54026, 55203, 56382, 57560, 58739, 59916, 61094, 62273, 63451, 64629, 65808, 66985, 68164, 69341]
    hit3 = 0

    是否有护石 = 1

    形态 = ["强化", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '普通':
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 0
            self.hit3 = 0
        if 形态 == '强化':
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 4
            self.hit3 = 4

    def 装备护石(self, char):
        self.CDR *= 0.9
        self.倍率 *= 1.30


class 技能18(被动技能):
    名称 = '混沌源能石'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.17 + 0.02 * self.等级, 5)


class 技能19(主动技能):
    名称 = "乖离：沉沦"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 59922, 66001, 72080, 78158, 84238, 90317, 96397, 102475, 108554, 114634, 120713, 126791, 132870, 138950, 145028, 151108, 157188, 163266, 169344, 175426, 181503, 187582, 193662, 199741, 205819,
             211899, 217979, 224056, 230135, 236215, 242293, 248373, 254453, 260532, 266609, 272690, 278769, 284847, 290927, 297006, 303085, 309165, 315243, 321322, 327401, 333480, 339560, 345639, 351718, 357796]
    hit0 = 1
    data1 = [0, 1996, 2201, 2402, 2604, 2806, 3008, 3213, 3415, 3617, 3820, 4023, 4225, 4427, 4630, 4832, 5035, 5239, 5441, 5643, 5846, 6047, 6251, 6453, 6655, 6859,
             7062, 7264, 7466, 7670, 7871, 8074, 8277, 8480, 8682, 8885, 9088, 9290, 9493, 9694, 9898, 10100, 10302, 10505, 10708, 10910, 11112, 11317, 11519, 11721, 11923]
    hit1 = 24

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.3


class 技能20(主动技能):
    名称 = "禁断之盛宴"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 9877, 12167, 14456, 16747, 19039, 21329, 23619, 25908, 28199, 30490, 32779, 35070, 37361, 39651, 41942, 44232, 46522, 48812, 51103, 53393, 55683, 57975, 60264, 62555, 64844,
             67135, 69425, 71715, 74007, 76297, 78587, 80877, 83168, 85458, 87748, 90038, 92329, 94620, 96909, 99200, 101491, 103780, 106071, 108362, 110652, 112943, 115233, 117522, 119813, 122103]
    hit0 = 10
    data1 = [0, 8231, 10139, 12047, 13955, 15865, 17773, 19683, 21590, 23499, 25407, 27317, 29226, 31135, 33042, 34950, 36859, 38768, 40677, 42585, 44494, 46402, 48311, 50220, 52129,
             54036, 55946, 57855, 59763, 61673, 63581, 65488, 67397, 69306, 71214, 73124, 75032, 76940, 78849, 80758, 82667, 84575, 86484, 88392, 90302, 92210, 94118, 96027, 97936, 99844, 101753]
    hit1 = 12
    data2 = [0, 4912, 6052, 7191, 8332, 9472, 10610, 11750, 12890, 14028, 15168, 16308, 17448, 18585, 19725, 20865, 22005, 23143, 24283, 25423, 26563, 27701, 28840, 29980, 31120, 32258,
             33398, 34538, 35677, 36816, 37956, 39095, 40236, 41374, 42514, 43654, 44794, 45932, 47072, 48212, 49352, 50489, 51629, 52769, 53909, 55047, 56187, 57327, 58467, 59606, 60744]
    hit2 = 18
    data3 = [0, 4606, 5672, 6741, 7809, 8877, 9946, 11012, 12081, 13150, 14216, 15286, 16355, 17421, 18490, 19557, 20625, 21695, 22762, 23830, 24897, 25965, 27033, 28102, 29170, 30238,
             31306, 32374, 33441, 34511, 35579, 36646, 37714, 38782, 39851, 40919, 41986, 43055, 44122, 45190, 46260, 47327, 48395, 49463, 50530, 51599, 52667, 53735, 54804, 55870, 56939]
    hit3 = 18
    data4 = [0, 146984, 181069, 215151, 249235, 283320, 317402, 351485, 385568, 419654, 453737, 487820, 521904, 555988, 590070, 624155, 658237, 692321, 726405, 760488, 794571, 828656, 862738, 896822, 930906, 964990, 999074,
             1033157, 1067240, 1101324, 1135408, 1169491, 1203574, 1237658, 1271742, 1305824, 1339909, 1373993, 1408076, 1442160, 1476243, 1510326, 1544410, 1578493, 1612577, 1646660, 1680744, 1714828, 1748911, 1782995, 1817078]
    hit4 = 1

    形态 = ["强化全", "强化简", "普通"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == '强化全':
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 10
            self.hit3 = 17
            self.hit4 = 1
        if 形态 == '强化简':
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 17
            self.hit4 = 1
        if 形态 == '普通':
            self.hit0 = 10
            self.hit1 = 12
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 0


class 技能21(主动技能):
    名称 = "乖离：边缘之兽"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [1067, 8000]
    无色消耗 = 7
    data0 = [0, 400, 520, 640, 760, 880, 1000, 1120, 1240, 1360, 1480, 1600, 1720, 1840, 1960, 2080, 2200, 2320, 2440, 2560, 2680, 2800, 2920, 3040, 3160, 3280,
             3400, 3520, 3640, 3760, 3880, 4000, 4120, 4240, 4360, 4480, 4600, 4720, 4840, 4960, 5080, 5200, 5320, 5440, 5560, 5680, 5800, 5920, 6040, 6160, 6280]
    hit0 = 1
    data1 = [0, 217138, 239166, 261195, 283222, 305252, 327280, 349309, 371337, 393365, 415393, 437422, 459451, 481479, 503508, 525536, 547563, 569593, 591621, 613650, 635678, 657707, 679734, 701763, 723793, 745820,
             767850, 789878, 811908, 833935, 855964, 877992, 900020, 922049, 944078, 966106, 988134, 1010163, 1032191, 1054219, 1076248, 1098276, 1120305, 1142333, 1164362, 1186390, 1208418, 1230447, 1252475, 1274505, 1296533]
    hit1 = 1


class 技能22(被动技能):
    名称 = '古史记忆'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = "未明·次元崩坏"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 90912, 111992, 133075, 154155, 175237, 196318, 217397, 238479, 259560, 280642, 301723, 322805, 343884, 364967, 386047, 407128, 428210, 449291, 470372, 491454, 512534, 533616, 554696, 575777, 596859,
             617940, 639020, 660102, 681183, 702264, 723346, 744426, 765508, 786589, 807670, 828751, 849832, 870913, 891996, 913076, 934156, 955239, 976318, 997400, 1018481, 1039563, 1060643, 1081726, 1102805, 1123886]
    hit0 = 1
    data1 = [0, 303040, 373311, 443580, 513852, 584122, 654392, 724662, 794934, 865204, 935474, 1005744, 1076016, 1146286, 1216555, 1286826, 1357096, 1427368, 1497637, 1567908, 1638178, 1708450, 1778719, 1848990, 1919260, 1989530,
             2059801, 2130072, 2200342, 2270612, 2340882, 2411154, 2481423, 2551693, 2621964, 2692235, 2762506, 2832775, 2903046, 2973316, 3043587, 3113857, 3184128, 3254398, 3324670, 3394939, 3465209, 3535479, 3605750, 3676021, 3746292]
    hit1 = 1
    data2 = [0, 53031, 65329, 77627, 89923, 102221, 114519, 126816, 139113, 151410, 163708, 176006, 188301, 200599, 212897, 225194, 237491, 249788, 262086, 274384, 286680, 298978, 311276, 323573, 335870, 348166,
             360464, 372762, 385058, 397356, 409654, 421951, 434248, 446545, 458843, 471141, 483437, 495735, 508033, 520330, 532627, 544924, 557222, 569520, 581815, 594113, 606411, 618708, 631006, 643302, 655600]
    hit2 = 4


class 技能24(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    学习间隔 = 1
    等级精通 = 110
    等级上限 = 200
    关联技能 = ['乖离：禁忌之奈雅丽']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'dimension_walker'
        self.名称 = '知源·次元行者'
        self.角色 = '魔法师(男)'

        self.职业 = '次元行者'
        self.武器选项 = ['扫把', '矛', '魔杖', '法杖', '棍棒']
        self.输出类型选项 = ['魔法固伤']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '扫把'
        self.防具类型 = '布甲'

        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1

        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.850

        super().__init__(equVersion)
